package com.example.leetcode.prcatice;

import java.util.Arrays;

/**
 * 给你一个整数数组 nums ，你需要找出一个 连续子数组 ，如果对这个子数组进行升序排序，那么整个数组都会变为升序排序。
 *
 * <p>请你找出符合题意的 最短 子数组，并输出它的长度。
 *
 * <p>来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test581 {

    public int findUnsortedSubarray(int[] nums) {
        boolean sort = isSort(nums);
        if (sort){
            return 0;
        }
        int[] newNums = new int[nums.length];
        System.arraycopy(nums,0,newNums,0,nums.length);
        Arrays.sort(newNums);
        int left = 0, right = 0;
        for (int i =0;i<newNums.length;i++){
            if(newNums[i] == nums[i]){
                left++;
            }else {
                break;
            }
        }
        for (int i = newNums.length-1;i>=0;i--){
            if(newNums[i] == nums[i]){
                right++;
            }else {
                break;
            }
        }
        System.out.println(left+"-"+right);
        return newNums.length -right-left;
    }

    public boolean isSort(int[] nums){
        for (int i = 0;i<nums.length-1;i++){
            if(nums[i]> nums[i+1]){
                return false;
            }
        }
        return true;
    }
}

class Demo581{
  public static void main(String[] args) {
    int[] nums = {2,6,4,8,10,9,15};
    Test581 t = new Test581();
    System.out.println(t.findUnsortedSubarray(nums));
  }
}